package com.demo.mqtt.serviceimpl;

import com.demo.mqtt.dao.UserDao;
import com.demo.mqtt.po.UserPO;
import com.demo.mqtt.service.UserService;
import com.demo.mqtt.utils.HttpCode;
import com.demo.mqtt.utils.MD5;
import com.demo.mqtt.vo.APIVO;
import com.demo.mqtt.vo.LoginPostVO;
import com.demo.mqtt.vo.RegisterPostVO;
import com.demo.mqtt.vo.RegisterVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * Created by fukunaka on 2017/6/4.
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public APIVO<RegisterVO> register(RegisterPostVO registerPostVO) {
        APIVO<RegisterVO> apivo = new APIVO<>();
        int code = HttpCode.ERROR;
        String msg = "注册失败";
        RegisterVO registerVO = new RegisterVO();
        UserPO userPO = userDao.finduserbyusername(registerPostVO.getUsername());
        if (userPO == null) {
            UserPO userPO1 = new UserPO();
            userPO1.setUsername(registerPostVO.getUsername());
            userPO1.setPassword(com.demo.mqtt.utils.MD5.encoded(registerPostVO.getPassword()));
            if (userDao.insertuser(userPO1)) {
                msg = "注册成功";
                code = HttpCode.SUCCESS;
            }
        } else {
            msg = "用户已注册";
        }

        apivo.setCode(code);
        apivo.setMsg(msg);
        apivo.setData(registerVO);
        return apivo;
    }

    @Override
    public APIVO<RegisterVO> login(LoginPostVO loginPostVO) {
        APIVO<RegisterVO> apivo = new APIVO<>();
        int code= HttpCode.ERROR;
        String msg= "登录失败";
        RegisterVO registerVO=new RegisterVO();
        UserPO userPO=userDao.finduserbyusername(loginPostVO.getUsername());
        if (userPO!=null)
        {
            if (com.demo.mqtt.utils.MD5.encoded(loginPostVO.getPassword()) .equals(MD5.encoded(userPO.getPassword())))
            {
                msg="登录成功";
                code =HttpCode.SUCCESS;
                RegisterVO.UserBean userBean=new RegisterVO.UserBean();
                userBean.setUid(String.valueOf(userPO.getId()));
                registerVO.setResult(userBean);
            }
        }
        else
        {
           msg="用户不存在";
        }
        apivo.setCode(code);
        apivo.setData(registerVO);
        apivo.setMsg(msg);
        return apivo;
    }
}
